#if !defined(AFX_PROPERTYWINDOW_H__A2811D19_C585_432C_8B07_5DC072668E6D__INCLUDED_)
#define AFX_PROPERTYWINDOW_H__A2811D19_C585_432C_8B07_5DC072668E6D__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// propertywindow.h : header file
//

/////////////////////////////////////////////////////////////////////////////
// PropertyWindow form view

#ifndef __AFXEXT_H__
#include <afxext.h>
#endif
#include "PropertySystemRes.h"
#include "PropertyCustomVisitor.h"
namespace pa
{
	class PropertyWindow : public CFormView
	{
	protected:
		PropertyWindow();           // protected constructor used by dynamic creation
		DECLARE_DYNCREATE(PropertyWindow)

	// Form Data
	public:
		//{{AFX_DATA(PropertyWindow)
		enum { IDD = IDD_PROPERTY_WINDOW };
			// NOTE: the ClassWizard will add data members here
		//}}AFX_DATA
    void SetPropertyVisitor(PropertyCustomVisitor* pVisitor)
	{
		m_pVisitor = pVisitor;
	}
 
	void UpdatePropertyData(BOOL bState = TRUE);

	void UpdatePropertyValidData();


	// Attributes
	public:
		PropertyCustomVisitor* m_pVisitor;
		

	// Operations
	public:

	// Overrides
		// ClassWizard generated virtual function overrides
		//{{AFX_VIRTUAL(PropertyWindow)
		protected:
		virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
        virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);
		//}}AFX_VIRTUAL

	// Implementation
	protected:
		virtual ~PropertyWindow();
		CRect GetWindowPosition(INT nIndex);
		
	#ifdef _DEBUG
		virtual void AssertValid() const;
		virtual void Dump(CDumpContext& dc) const;
	#endif

		// Generated message map functions
		//{{AFX_MSG(PropertyWindow)
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	afx_msg void OnSize(UINT nType, int cx, int cy);
	afx_msg void OnShowWindow(BOOL bShow, UINT nStatus);
	afx_msg BOOL ToolTipProc( UINT id, NMHDR * pTTTStruct, LRESULT * pResult );
	//}}AFX_MSG
		DECLARE_MESSAGE_MAP()
	};
};
/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_PROPERTYWINDOW_H__A2811D19_C585_432C_8B07_5DC072668E6D__INCLUDED_)
